Website powered by

Procedural Modeling Tools in RP7

As the sole artist in our indie game project, I had to wear multiple hats to bring the game to life, creating everything like small icons, environment arts and fully animated characters.

With so many assets to produce, I needed to automate as much of the art creation as possible. Using procedural tool like Houdini wasn't an choice, it was essential to complete the project.

One of the first procedural modeling tool was Key Generator Tool. In my game, button model was filling large portion of screen. Players can remap their own 7 keys, so I had to create at least 28 English alphabet keys for display.
After modeling just two keys, I realized it took an hour, which meant completing all 28 would require at least 14 hours.

This process quickly highlighted potential bottlenecks.
What if I decide to change the key shape? or what if I need to add special keys like Backspace or Tab?

To address this, I create custom procedural tool in Houdini that lets me modify all keys simultaneously and export evry key model at once, saving hours of repetitive work.

key generator tool. It provides parameters to change 157 models simultaneously and export all of them once.

key of using procedural tool was keep consistency of how it looks.

key of using procedural tool was keep consistency of how it looks.

I don't like to sculpt every single wood beams but I like to have sophisticated looking of them. I ended up researching lots of Houdini noises and came up with this tool. This tool generate highpoly mesh based on simple box.

example of using wood beam tool

example of using wood beam tool

this python script was extremely helpful to placing rooftiles on buildings. It has parameters to randomize its rotation/location/scale.

Most of building roofs were created by that tool.

Most of building roofs were created by that tool.

Quick retopo tool - this tool generate lowpoly meshes with naming convention. All highpoly meshes would have objectName_high and the all lowpoly meshes would have objectName_low. So it would easy to bake texture by names in Substance suites.